"use strict";
/**
 |--------------------------------------------------
 |   删除k个数字后的最小值
 |--------------------------------------------------
 */
function removeKDigits(nums, k) {
    //新数组最终长度
    let newLength = nums.length - k;
    //创建一个栈 接受所用的数字
    const stack = new Array(nums.length);
    let top = 0;
    for (let i = 0; i < nums.length; i++) {
        //遍历当前数字
        const c = nums[i];
        // 如果发现 栈里 的数据  大于 当前数据 则删除
        while (top > 0 && stack[top - 1] > c && k > 0) {
            top -= 1; //相当出栈
            k -= 1; //符合的删除个数减一
        }
        // 入栈
        stack[top++] = c;
    }
    let offset = 0;
    //todo:找到第一个栈中非0 数字的位置  ???
    while (offset < newLength && stack[offset] === '0') {
        //不满足就 不会再次进入
        offset++;
    }
    return stack.splice(offset).join('');
}
console.log(removeKDigits("1593212", 3));
console.log(removeKDigits("300200", 1));
console.log(removeKDigits("100", 1));
console.log(removeKDigits("541270936", 3));
